package main

import (
	"fmt"
	"time"
)

// 时间

func main() {

	a := time.Now()

	//日期时间
	fmt.Println(a.Format("2006-01-02 03:04:05")) //2024-05-27 09:29:48 12小时制
	fmt.Println(a.Format("2006-01-02 15:04:05")) //2024-05-27 21:27:49  24小时制

	//时间戳

	fmt.Println(a.Unix()) //1716816663

	//时间戳 转年月日XX
	fmt.Println(time.Unix(time.Now().Unix(), 0).Format("2006-01-02 03:04:05"))

	// 感觉时间戳 转换日期字符串：
	b := 1716816663
	c := time.Unix(int64(b), 0)
	fmt.Println(c.Format("2006-01-02 03:04:05"))

	//日期字符串转出时间戳

	d := "2024-05-27 09:29:48"
	e := "2006-01-02 15:04:05"                      //这是格式化的模版 下面ParseInLocation函数用
	a1, _ := time.ParseInLocation(e, d, time.Local) // 生成：2024-05-27 09:29:48 +0800 CST
	fmt.Println(a1.Unix())                          //1716773388

	//时间加一小时？
	h := time.Now()
	h1 := h.Add(time.Hour)
	fmt.Println(h1) //2024-05-27 23:00:32.0175489 +0800 CST m=+3600.028863401  现在是22点 往后加了一小时

	//定时器1
	// 2秒一次 执行5次完事
	j := time.NewTicker(2 * time.Second)

	N := 5
	for time := range j.C {
		fmt.Println(time)
		N--
		if N == 0 {
			j.Stop() //销毁定时器 清理内存
			break
		}
	}

}
